/**
 * 
 */
package ads.engenharia.dal;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import ads.engenharia.entity.Course;

/**
 * @author Lanedraex
 *
 */
public class CourseDAO {

	private EntityManager em = new EntityManager() {

		@Override
		public Object treatResultSet(ResultSet resultSet) throws SQLException {
			Course course = new Course();

			return course;
		}
	};

	/**
	 * Saves course.
	 * 
	 * @param course
	 * @throws SQLException
	 */
	public void save(Course course) throws SQLException {

	}

	/**
	 * Deletes course.
	 * 
	 * @param course
	 * @throws SQLException
	 */
	public void delete(Course course) throws SQLException {

	}

	/**
	 * Deletes all courses.
	 * 
	 * @throws SQLException
	 */
	public void deleteAll() throws SQLException {

	}

	/**
	 * Updates course.
	 * 
	 * @param course
	 * @throws SQLException
	 */
	public void update(Course course) throws SQLException {

	}

	/**
	 * Searches for course.
	 * 
	 * @param course
	 * @return course
	 * @throws SQLException
	 */
	public Course search(Course course) throws SQLException {

		return null;
	}

	/**
	 * Searches all courses.
	 * 
	 * @return List of courses
	 * @throws SQLException
	 */
	public ArrayList<Course> searchAll() throws SQLException {

		return null;
	}

	public Course searchById(int id) throws SQLException {

		return null;
	}

	public ArrayList<Course> searchByName(String name) throws SQLException {

		return null;
	}

	/**
	 * Searches by course total duration.
	 * 
	 * @param duration
	 * @return List of courses
	 * @throws SQLException
	 */
	public ArrayList<Course> searchByDuration(int duration) throws SQLException {

		return null;
	}

	/**
	 * Searches for courses that have disciplines or not.
	 * 
	 * @param status
	 * @return List of courses
	 * @throws SQLException
	 */
	public ArrayList<Course> searchByStatus(boolean status) throws SQLException {

		return null;
	}

}
